OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图) | 您所在的位置:网站首页 › opencv 三通道转单通道 › OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图) |
目录 一、彩色图灰度化 1、主要函数cvtColor()介绍 2、代码 3、效果 二、通道分离 1、向量介绍 2、总代码 3、效果 三、单通道(灰度图)反差处理 1、单通道向量访问 2、代码 3、效果 四、多通道(彩色图)反差处理(彩色图的反差处理) 1、多通道向量访问 2、代码 3、效果 总代码 一、彩色图灰度化 1、主要函数cvtColor()介绍彩图灰度化要用到cv2.cvtColor() 颜色转换函数 cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 );. InputArray src: 输入图像即要进行颜色空间变换的原图像,可以是Mat类 . OutputArray dst: 输出图像即进行颜色空间变换后存储图像,也可以Mat类 . int code: 转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片。 (注:这里用的是COLOR_RGB2GRAY(彩图转灰度图)(用的opencv3,所以用右边的参数))
通道分离需要借助矩阵向量,向量特点是可以无限延伸,一个向量存放一组通道数据。 这里的向量可以理解为数学意义上的列向量,构造一个_cn*1的列向量,数据类型为_Tp,格式如下: Vec 注:OpenCV中对RGB图像数据的存储顺序是BGR,而且Scalar+的顺序也是B+G+R搜索结果。 (是BGR不是RGB) 2、总代码 //通道分离 //通道分离需要用到向量(3个通道分别存入3个向量) #include #include using namespace cv; using namespace std; Mat img, Img; vector planes; //创建向量(存放各通道内元素) //图像初始化 void Image_Init() { img = imread("Resource/rgb.jpg"); //读取 if (img.empty()) { printf("could not load the picture..."); exit(0); } } //改变图像大小(便于观看) void Resize() { resize(img, Img, Size(img.cols / 2, img.rows / 2)); // 原图 新图 (宽, 高) } //通道分离 void Split() { //将原图通道分离 split(Img, planes); //分离通道(3个通道分别存入3个向量) //cout |
CopyRight 2018-2019 实验室设备网 版权所有 |